home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / tex-k / tex-k-archive.past / tex-k-archive.gz / tex-k-archive / 000927_J.L.Braams@research.ptt.nl_Tue Sep 13 17:04:27 1994.msg < prev    next >
Internet Message Format  |  1994-10-11  |  14KB

  1. Received: from dnlts0.research.ptt.nl by cs.umb.edu with SMTP id AA04318
  2.   (5.65c/IDA-1.4.4 for <tex-k@cs.umb.edu>); Tue, 13 Sep 1994 15:08:54 -0400
  3. Received: from athena.research.ptt.nl by research.ptt.nl (PMDF V4.2-15 #2928)
  4.  id <01HH2GCX42CG9YEZGE@research.ptt.nl>; Tue, 13 Sep 1994 15:06:12 +0200
  5. Received: from localhost by athena.research.ptt.nl with SMTP id AA03125
  6.  (5.65c+/IDA-1.4.4 for tex-k@cs.umb.edu); Tue, 13 Sep 1994 15:04:27 +0200
  7. Date: Tue, 13 Sep 1994 15:04:27 +0200
  8. From: "Johannes L. Braams" <J.L.Braams@research.ptt.nl>
  9. Subject: Building web2c 6.1
  10. To: tex-k@cs.umb.edu
  11. Reply-To: J.L.Braams@research.ptt.nl
  12. Message-Id: <199409131304.AA03125@athena.research.ptt.nl>
  13. X-Envelope-To: tex-k@cs.umb.edu
  14. Content-Transfer-Encoding: 7BIT
  15. X-Organisation: PTT Research, The Netherlands
  16. X-Mts: smtp
  17.  
  18.     Karl,
  19.  
  20.         I have finally been building web2c in our environment and I
  21.     would like to tell you some of the problems I encountered.
  22.  
  23.     First some general ones:
  24.  
  25.     In the top-level Makefile you have a line:
  26. # Where dvips' TeX macro files get installed.
  27. psmacrodir = $(texinputdir)/dvips
  28.     But then, you define makeargs as
  29. makeargs=...
  30.   dvips_prefix=$(dvips_prefix) configdir=$(configdir) \
  31.   headerdir=$(headerdir) psmacrodir=$(texinputdir)/dvips \
  32. ...
  33.     Thereby overriding anu change one would have made to the
  34.     definition of psmacrodir.
  35.  
  36.     Then the makes I ran all broke when doing the make in
  37.     web2c/lib. I hade to enter the follwoing modification in
  38.     Makefile.in in the directory web2c/lib:
  39. *** Makefile.in.dist    Thu Feb  3 13:48:34 1994
  40. --- Makefile.in Mon Sep 12 14:42:32 1994
  41. ***************
  42. *** 47,54 ****
  43.   
  44.   install install-exec install-data:
  45.   
  46. ! $(srcdir)/../lib/c-auto.h.in: $(srcdir)/../lib/c-auto.h.start \
  47. !                               $(configure_in) $(autoheader) 
  48.         rm -f $(srcdir)/../lib/c-auto.h.in
  49.         cd $(srcdir)/../lib; cp c-auto.h.start c-auto.h.in
  50.         echo '/* Below here generated by autoheader.  */' \
  51. --- 47,54 ----
  52.   
  53.   install install-exec install-data:
  54.   
  55. ! $(srcdir)/../lib/c-auto.h.in: $(srcdir)/../lib/c-auto.h.start #\
  56. ! #                              $(configure_in) $(autoheader) 
  57.         rm -f $(srcdir)/../lib/c-auto.h.in
  58.         cd $(srcdir)/../lib; cp c-auto.h.start c-auto.h.in
  59.         echo '/* Below here generated by autoheader.  */' \
  60.  
  61.     Then make happily continued past this point.
  62.  
  63.     Now some points that are specific to our site, but might be of
  64.     interest to others as well.
  65.  
  66.     We have a number of different types of machines for which we
  67.     maintain a large set of ultilities. We run things on 
  68.     DEC MIPS/Ultrix;
  69.     Sun4 SunOS 4.1.3
  70.     Sun4 SunOS 5.3 (Solaris 2.3)
  71.  
  72.     To keep things manageable we maintain a single directory
  73.     structure on a fileserver where everything is stored. This
  74.     directory structure is built under /depot/p/...
  75.  
  76.     Each package has its own subdirectory, with general and
  77.     machine specific directories below. So for web2c we have:
  78.  
  79. /depot/p/web2c-6.1/ --+-- bin/
  80.                       +-- doc/
  81.                       +-- lib/ --+-- bibtex/ --+-- bib/
  82.                       |          |             +-- bst/
  83.                       |          +-- mf/inputs/ --+-- cm/
  84.                       |          |                +-- concrete/
  85.                       |          |                +-- dc/
  86.                       |          |                +-- latex/
  87.                       |          |                +-- logo/
  88.                       |          |                +-- manual/
  89.                       |          |                +-- mf/
  90.                       |          |                +-- pandora/
  91.                       |          +-- mft/
  92.                       |          +-- tex/inputs/
  93.                       +-- man/man1
  94.                       +-- mips-ultrix-4.3/ ----+-- bin/
  95.                       |                        +-- formats/
  96.                       |                        +-- bases/
  97.                       +-- sun4-sunos-4.1.3/ ---+-- bin/
  98.                       |                        +-- formats/
  99.                       |                        +-- bases/
  100.                       +-- sun4-sunos-5.3/ -----+-- bin/
  101.                                                +-- formats/
  102.                                                +-- bases/
  103.  
  104.     We hid this from the user by inserting soft links in
  105.     /usr/local/bin and /usr/local/lib to the right places in this
  106.     structure. It was not immediately obvious how I could get
  107.     web2c to accept the situation where the paths that are
  108.     compiled into the programs are different from the paths where
  109.     the programs etc. are installed. I ended up copying most of
  110.     the variables in the top-level Makefile, giving them a name
  111.     with the prefix usr (See the diff below). I then introduced
  112.     usrmakeargs and passed that to the make runs that compile
  113.     programs instead of makeargs.
  114.  
  115.     This solution may not be elgant, or the best one can think of,
  116.     but it worked for me. The lesson of this story might be that
  117.     it is possibly a good idea to support this kind of setup in
  118.     the Makefiles you provide.
  119.  
  120.     Regards (and thanks for providing web2c),
  121.  
  122.     Johannes Braams
  123.  
  124. PTT Research,                           P.O. box 421,
  125. 2260 AK Leidschendam,                   The Netherlands.
  126. Phone    : +31 70 3325051               E-mail : J.L.Braams@research.ptt.nl
  127. Fax      : +31 70 3326477
  128. -------------------------------------------------------------------------------
  129. *** Makefile.in.dist    Thu Feb  3 13:48:00 1994
  130. --- Makefile.in    Tue Sep 13 13:16:12 1994
  131. ***************
  132. *** 15,27 ****
  133.   # See kpathsea/INSTALL for a description of how the various path-related
  134.   # files are used and created.
  135.   
  136.   # Generic installation directories.
  137. ! prefix = /usr/local
  138. ! exec_prefix = $(prefix)
  139.   bindir = $(exec_prefix)/bin
  140. ! scriptdir = $(bindir)
  141.   libdir = $(exec_prefix)/lib
  142.   datadir = $(prefix)/lib
  143.   infodir = $(prefix)/info
  144.   includedir = $(prefix)/include
  145.   manext = 1
  146. --- 15,34 ----
  147.   # See kpathsea/INSTALL for a description of how the various path-related
  148.   # files are used and created.
  149.   
  150. + hwswversion = mips-ultrix-4.3
  151. + #hwswversion = sun4-sunos-4.1.3
  152. + #hwswversion = sun4-sunos-5.3
  153.   # Generic installation directories.
  154. ! prefix = /depot.src/p/web2c-6.1
  155. ! usrprefix = /usr/local
  156. ! exec_prefix = $(prefix)/$(hwswversion)
  157.   bindir = $(exec_prefix)/bin
  158. ! usrbindir = $(usrprefix)/bin
  159. ! scriptdir = $(prefix)/bin
  160.   libdir = $(exec_prefix)/lib
  161.   datadir = $(prefix)/lib
  162. + usrdatadir = $(usrprefix)/lib
  163.   infodir = $(prefix)/info
  164.   includedir = $(prefix)/include
  165.   manext = 1
  166. ***************
  167. *** 34,77 ****
  168.   # paths to sub-makes can make the arg list too long on system V.
  169.   
  170.   # The root of the tree.
  171. ! texmf_prefix = $(datadir)/texmf
  172.   
  173.   # TeX and MF source files.
  174. ! texinputdir = $(texmf_prefix)/tex
  175. ! mfinputdir = $(texmf_prefix)/mf
  176.   
  177.   # The top-level font directory.
  178.   fontdir = $(texmf_prefix)/fonts
  179.   
  180.   # Where memory dumps are installed.
  181. ! fmtdir = $(texmf_prefix)/ini
  182. ! basedir = $(fmtdir)
  183.   
  184.   # Pool files.
  185. ! texpooldir = $(texmf_prefix)/ini
  186. ! mfpooldir = $(texpooldir)
  187.   
  188.   # The PostScript TFM and VF files get installed in subdirectories of
  189.   # this directory, named for the typeface families of these directories.
  190. ! psfontdir = $(fontdir)/adobe
  191.   
  192.   # Where the configuration files get installed.
  193. ! dvips_prefix = $(texmf_prefix)/dvips
  194.   configdir = $(dvips_prefix)
  195.   
  196.   # Where the PostScript prologues go.
  197. ! headerdir = $(configdir)
  198.   
  199.   # Where dvips' TeX macro files get installed.
  200.   psmacrodir = $(texinputdir)/dvips
  201.   
  202.   # If a font can't be found close enough to its stated size, we look for
  203.   # each of these sizes in the order given.  This colon-separated list is
  204.   # overridden by the envvar TEXSIZES, and by a program-specific variable
  205.   # (e.g., XDVISIZES), and perhaps by a config file (e.g., in dvips).
  206. ! default_texsizes = 300:600
  207. ! # End of installation directory definitions.
  208.   
  209.   SHELL = /bin/sh
  210.   srcdir = @srcdir@
  211. --- 41,94 ----
  212.   # paths to sub-makes can make the arg list too long on system V.
  213.   
  214.   # The root of the tree.
  215. ! texmf_prefix = $(datadir)
  216.   
  217.   # TeX and MF source files.
  218. ! texinputdir = $(texmf_prefix)/lib/tex/inputs
  219. ! mfinputdir = $(texmf_prefix)/lib/mf/inputs
  220. ! usrtexinputdir = $(usrdatadir)/tex/inputs
  221. ! usrmfinputdir = $(usrdatadir)/mf/inputs
  222.   
  223.   # The top-level font directory.
  224.   fontdir = $(texmf_prefix)/fonts
  225. + usrfontdir = $(usrdatadir)/tex/fonts
  226.   
  227.   # Where memory dumps are installed.
  228. ! fmtdir = $(exec_prefix)/formats
  229. ! basedir = $(exec_prefix)/bases
  230. ! usrfmtdir = $(usrdatadir)/tex/formats
  231. ! usrbasedir = $(usrdatadir)/mf/bases
  232.   
  233.   # Pool files.
  234. ! texpooldir = $(fmtdir)
  235. ! mfpooldir = $(basedir)
  236. ! usrtexpooldir = $(usrfmtdir)
  237. ! usrmfpooldir = $(usrbasedir)
  238.   
  239.   # The PostScript TFM and VF files get installed in subdirectories of
  240.   # this directory, named for the typeface families of these directories.
  241. ! psfontdir = $(fontdir)
  242. ! usrpsfontdir = $(usrfontdir)
  243.   
  244.   # Where the configuration files get installed.
  245. ! dvips_prefix = $(texmf_prefix)/configs
  246. ! usrdvips_prefix = $(usrdatadir)/tex/configs
  247.   configdir = $(dvips_prefix)
  248. + usrconfigdir = $(usrdvips_prefix)
  249.   
  250.   # Where the PostScript prologues go.
  251. ! headerdir = $(fontdir)/ps
  252. ! usrheaderdir = $(usrfontdir)/ps
  253.   
  254.   # Where dvips' TeX macro files get installed.
  255.   psmacrodir = $(texinputdir)/dvips
  256. + usrpsmacrodir = $(usrtexinputdir)/dvips
  257.   
  258.   # If a font can't be found close enough to its stated size, we look for
  259.   # each of these sizes in the order given.  This colon-separated list is
  260.   # overridden by the envvar TEXSIZES, and by a program-specific variable
  261.   # (e.g., XDVISIZES), and perhaps by a config file (e.g., in dvips).
  262. ! default_texsizes = 300
  263.   
  264.   SHELL = /bin/sh
  265.   srcdir = @srcdir@
  266. ***************
  267. *** 85,96 ****
  268.   
  269.   # It's too bad we have to pass all these down, but I see no alternative,
  270.   # if we are to propagate changes at the top level.
  271.   makeargs = $(MFLAGS) CFLAGS='$(CFLAGS)' SHELL='$(SHELL)' \
  272.     prefix=$(prefix) exec_prefix=$(exec_prefix) \
  273.     bindir=$(bindir) scriptdir=$(scriptdir) libdir=$(libdir) \
  274.     datadir=$(datadir) infodir=$(infodir) includedir=$(includedir) \
  275.     manext=$(manext) mandir=$(mandir) \
  276. !   texmf_prefix=$(texmf_prefix) \
  277.     texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) \
  278.     fontdir=$(fontdir) \
  279.     fmtdir=$(fmtdir) basedir=$(basedir) \
  280. --- 102,129 ----
  281.   
  282.   # It's too bad we have to pass all these down, but I see no alternative,
  283.   # if we are to propagate changes at the top level.
  284. + usrmakeargs = $(MFLAGS) CFLAGS='$(CFLAGS)' SHELL='$(SHELL)' \
  285. +   prefix=$(usrprefix) exec_prefix=$(exec_prefix) \
  286. +   bindir=$(usrbindir) scriptdir=$(scriptdir) libdir=$(libdir) \
  287. +   datadir=$(usrdatadir) infodir=$(infodir) includedir=$(includedir) \
  288. +   manext=$(manext) mandir=$(mandir) \
  289. +   texmf_prefix=$(usrdatadir) \
  290. +   texinputdir=$(usrtexinputdir) mfinputdir=$(usrmfinputdir) \
  291. +   fontdir=$(usrfontdir) \
  292. +   fmtdir=$(usrfmtdir) basedir=$(usrbasedir) \
  293. +   texpooldir=$(usrtexpooldir)   mfpooldir=$(usrmfpooldir) \
  294. +   psfontdir=$(usrpsfontdir) \
  295. +   dvips_prefix=$(usrdvips_prefix) configdir=$(usrconfigdir) \
  296. +   headerdir=$(usrheaderdir) psmacrodir=$(usrpsmacrodir) \
  297. +   default_texsizes='$(default_texsizes)' \
  298. +   $(MAKEARGS)
  299.   makeargs = $(MFLAGS) CFLAGS='$(CFLAGS)' SHELL='$(SHELL)' \
  300.     prefix=$(prefix) exec_prefix=$(exec_prefix) \
  301.     bindir=$(bindir) scriptdir=$(scriptdir) libdir=$(libdir) \
  302.     datadir=$(datadir) infodir=$(infodir) includedir=$(includedir) \
  303.     manext=$(manext) mandir=$(mandir) \
  304. !   texmf_prefix=$(datadir) \
  305.     texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) \
  306.     fontdir=$(fontdir) \
  307.     fmtdir=$(fmtdir) basedir=$(basedir) \
  308. ***************
  309. *** 97,103 ****
  310.     texpooldir=$(texpooldir)   mfpooldir=$(mfpooldir) \
  311.     psfontdir=$(psfontdir) \
  312.     dvips_prefix=$(dvips_prefix) configdir=$(configdir) \
  313. !   headerdir=$(headerdir) psmacrodir=$(texinputdir)/dvips \
  314.     default_texsizes='$(default_texsizes)' \
  315.     $(MAKEARGS)
  316.   
  317. --- 130,136 ----
  318.     texpooldir=$(texpooldir)   mfpooldir=$(mfpooldir) \
  319.     psfontdir=$(psfontdir) \
  320.     dvips_prefix=$(dvips_prefix) configdir=$(configdir) \
  321. !   headerdir=$(headerdir) psmacrodir=$(psmacrodir) \
  322.     default_texsizes='$(default_texsizes)' \
  323.     $(MAKEARGS)
  324.   
  325. ***************
  326. *** 107,113 ****
  327.   # Make the library before the programs.
  328.   all: do-kpathsea
  329.       for d in $(programs); do \
  330. !       if test -d $$d; then (cd $$d; $(MAKE) $(makeargs) $@); \
  331.         else true; fi; done
  332.   
  333.   # Only (un)install in the programs.
  334. --- 140,146 ----
  335.   # Make the library before the programs.
  336.   all: do-kpathsea
  337.       for d in $(programs); do \
  338. !       if test -d $$d; then (cd $$d; $(MAKE) $(usrmakeargs) $@); \
  339.         else true; fi; done
  340.   
  341.   # Only (un)install in the programs.
  342. ***************
  343. *** 130,136 ****
  344.   # Unconditionally remake the library, since we don't want to write out
  345.   # the dependencies here.
  346.   do-kpathsea:
  347. !     cd $(kpathsea_dir); $(MAKE) $(makeargs)
  348.   
  349.   # Targets that only apply to web2c.
  350.   triptrap run-triptrap clean-triptrap \
  351. --- 163,169 ----
  352.   # Unconditionally remake the library, since we don't want to write out
  353.   # the dependencies here.
  354.   do-kpathsea:
  355. !     cd $(kpathsea_dir); $(MAKE) $(usrmakeargs)
  356.   
  357.   # Targets that only apply to web2c.
  358.   triptrap run-triptrap clean-triptrap \
  359. ***************
  360. *** 140,146 ****
  361.   TeX MF BibTeX \
  362.   formats fmts bases \
  363.   manpages install-manpages:
  364. !     cd web2c; $(MAKE) $(makeargs) $@
  365.   
  366.   configure_in = $(srcdir)/configure.in
  367.   $(srcdir)/configure: $(configure_in) $(autoconf)
  368. --- 173,179 ----
  369.   TeX MF BibTeX \
  370.   formats fmts bases \
  371.   manpages install-manpages:
  372. !     cd web2c; $(MAKE) $(usrmakeargs) $@
  373.   
  374.   configure_in = $(srcdir)/configure.in
  375.   $(srcdir)/configure: $(configure_in) $(autoconf)
  376. ***************
  377. *** 151,153 ****
  378. --- 184,188 ----
  379.   
  380.   Makefile: $(srcdir)/Makefile.in config.status
  381.       $(SHELL) config.status